To meet the growing demands of homes and offices, virtualization technology is being extensively used in computing systems. In general, the virtualization technology allows a host processor to run multiple operating systems, also referred to as system images, and applications in independent partitions. In other words, one computing system with virtualization can function as multiple “virtual” systems. Furthermore, each of the virtual systems may be isolated from each other and may function independently.
In the recent past, virtualization has also been extended to cover I/O virtualization. I/O virtualization is a methodology which transforms accesses between standard I/O devices and host processors such that the I/O devices can be shared across multiple system images or hosts in a way which hides the sharing from both the host processor and the shared I/O devices.